package main

import (
	"errors"
	"fmt"
)

func f1(arg int) (int, error) {
	if arg == 20 {
		return -1, errors.New("不能传入20")
	}
	return arg + 1, nil
}

// 自定义错误类型
type argError struct {
	args int
	prob string
}

func (e *argError) Error() string {
	return fmt.Sprintf("%d - %s", e.args, e.prob)
}

func f2(arg int) (int, error) {
	if arg == 2 {
		return -1, &argError{
			args: arg,
			prob: "不能传入改值",
		}
	}
	return arg, nil
}
func main() {
	fmt.Println(f1(20))
	fmt.Println(f2(2))
}
